﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Data;

namespace Bussiness
{
    public class manejadorReservas
    {
        private DataTable dataTableTemporal,dataTableTemporalAux;
        private List<String> habitacionesDisponibles=new List<string>();
        private List<String> habitacionesCapacidadDisponibles = new List<string>();

        private List<String> habitacionesDisponiblesTodas = new List<string>();
        private List<String> habitacionesCapacidadDisponiblesTodas = new List<string>();

        public List<string> obtenerHabitacionesDisponibles(string fechaIngreso, string fechaSalida,string tipoHabitacion)
        {
            habitacionesDisponibles.Clear();
            ReservasDataAccess buscarDataAccess = new ReservasDataAccess();

            dataTableTemporal = buscarDataAccess.buscarReservaFecha(fechaIngreso, fechaSalida, tipoHabitacion);
            for (int i = 0; i < dataTableTemporal.Rows.Count; i++)
            {
                DataRow row = dataTableTemporal.Rows[i];
                habitacionesDisponibles.Add(Convert.ToString(row["numero"]));
            }
            return habitacionesDisponibles;
        }

        public List<string> obtenerCapacidadHabitacionesDisponibles(string fechaIngreso, string fechaSalida, string tipoHabitacion)
        {
            habitacionesCapacidadDisponibles.Clear();
            ReservasDataAccess buscarDataAccess = new ReservasDataAccess();

            dataTableTemporal = buscarDataAccess.buscarReservaFecha(fechaIngreso, fechaSalida, tipoHabitacion);
            for (int i = 0; i < dataTableTemporal.Rows.Count; i++)
            {
                DataRow row = dataTableTemporal.Rows[i];
                habitacionesCapacidadDisponibles.Add(Convert.ToString(row["capacidad"]));
            }
            return habitacionesCapacidadDisponibles;
        }

        public bool estaHabitacionDisponible(string numeroHabitacion)
        {
            return habitacionesDisponibles.Contains(numeroHabitacion);
        }

        public List<string> obtenerHabitacionesDisponiblesTodas(string tipoHabitacion)
        {
            habitacionesDisponiblesTodas.Clear();
            habitacionDataAccess habitaciones = new habitacionDataAccess();
            dataTableTemporalAux = habitaciones.buscarHabitacionesCapacidad(tipoHabitacion);

            for (int i = 0; i < dataTableTemporalAux.Rows.Count; i++)
            {
                DataRow row = dataTableTemporalAux.Rows[i];
                habitacionesDisponiblesTodas.Add(Convert.ToString(row["numero"]));
            }
            return habitacionesDisponiblesTodas;
        }

        public List<string> obtenerCapacidadHabitacionesDisponiblesTodas(string tipoHabitacion)
        {
            habitacionesCapacidadDisponiblesTodas.Clear();
            habitacionDataAccess habitaciones = new habitacionDataAccess();
            dataTableTemporalAux=habitaciones.buscarHabitacionesCapacidad(tipoHabitacion);

            for (int i = 0; i < dataTableTemporalAux.Rows.Count; i++)
            {
                DataRow row = dataTableTemporalAux.Rows[i];
                habitacionesCapacidadDisponiblesTodas.Add(Convert.ToString(row["capacidad"]));
            }
            return habitacionesCapacidadDisponiblesTodas;
        }
    }
}
